<!--
 * @FilePath     : /study_code/layui/12-7-0.html
 * @Description  : form.on() radio 单选交互
 * @Date         : 2025-04-07 16:07:21
 * @Author       : Fang YingGui
 * @LastEditors  : fangyinggui 18715384437@163.com
 * @LastEditTime : 2025-04-07 16:59:03
-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>documentName</title>
    <link rel="stylesheet" href="/layui/dist/css/layui.css" />
  </head>
  <body>
    <form class="layui-form">
      <h2>4、radio 单选事件</h2>
      <div class="layui-form-item">
        <label class="layui-form-label">单选框</label>
        <div class="layui-input-block">
          <input type="radio" name="sex" value="0" title="男" lay-filter="sexRadio" />
          <input type="radio" name="sex" value="1" title="女" lay-filter="sexRadio" checked />
        </div>
      </div>
    </form>

    <script src="/layui/dist/layui.js"></script>
    <script>
      layui.use(['form'], function () {
        var form = layui.form,
          $ = layui.$

        /**
         * @brief: 触发radio单选事件；
         * @param {Sting} radio(sexRadio),
         * #radio 事件
         * #sexRadio 触发事件的表单过滤；
         * @param {Function} callback(data), 事件触发时调用的回调；
         * #data, 事件触发时获取当前表单元素及数据；
         * data.elem, // 得到checkbox原始DOM对象（原始 复选 input单节点）
         * $data.elem.checked, // 被选中时，始终是 true
         * $data.elem.value, // !复选框value值（始终是value值，没有的话是 ''）
         * $data.value, // !复选框value值（始终是value值，没有的话是 ''）
         * data.othis, // 得到美化后的DOM对象（整个美化后的节点）
         * !1、提交表单的 name 值一定要有，否则整个键值对都为空；
         * !2、data.form 只有在有 form 时才有返回值；
         * !3、`return false` 会阻止表单跳转，如果需要跳转，不添加；
         * !4、layui.onevent() 自定义模块事件时，不能占用（已有表单的 select, radio, ...） form 名；
         */
        // form.on('radio(sexRadio)', callback(data));
        form.on('radio(sexRadio)', function (data) {
          // console.log(data.elem)
          // console.log(data.elem.checked) // true
          console.log(data.value)
          // console.log(data.othis)
        })
      })
    </script>
  </body>
</html>
